package com.eastfair.visitor.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.visitor.dto.AuditSettingsDTO;
import com.eastfair.visitor.dto.AuditSettingsPageQuery;
import com.eastfair.visitor.dto.AuditSettingsSaveDTO;
import com.eastfair.visitor.dto.AuditSettingsUpdateDTO;
import com.eastfair.visitor.entity.AuditSettings;
import com.eastfair.visitor.vo.AuditSettingsVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 审核设置表
 * </p>
 *
 * @author lyw
 * @date 2022-11-18
 */
public interface AuditSettingsService extends SuperService<AuditSettings> {
    /**
     * do转vo
     *
     * @param model
     */
    AuditSettingsVO doToVo(AuditSettings model);

    /**
     * do转vo
     *
     * @param modelList
     */
    List<AuditSettingsVO> doToVos(List<AuditSettings> modelList);


    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<AuditSettings> list(AuditSettingsDTO modelDTO, List<Long> ids);

    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<AuditSettings> listOfCache(AuditSettingsDTO modelDTO, List<Long> ids);

    /**
     * 审核开关列表
     * @param params
     * @return
     */
    IPage<AuditSettingsVO> queryDepartmentList(PageParams<AuditSettingsPageQuery> params);

    /**
     * 审核开关列表
     * @param auditSettingsPageQuery
     * @return
     */
    List<AuditSettingsVO> getAuditSettingsList(AuditSettingsPageQuery auditSettingsPageQuery);



    /**
     * 查询开关信息
     * @return
     */
    AuditSettingsVO  getAuditSettingsInfo();

    /**
     * 添加审核开关
     * @param auditSettingsSaveDTO
     * @return
     */
    Boolean saveAuditSettingsInfo(AuditSettingsSaveDTO auditSettingsSaveDTO);

    /**
     * 修改审核开关
     * @param auditSettingsUpdateDTO
     * @return
     */
    Boolean updateAuditSettingsInfo(AuditSettingsUpdateDTO auditSettingsUpdateDTO);

    /**
     * 逻辑删除审核开关
     * @param auditSettingsUpdateDTO
     * @return
     */
    Boolean delAuditSettingsById(AuditSettingsUpdateDTO auditSettingsUpdateDTO);
}
